let urlEnv = require("@/config/env");

function initSocket(url) {
  let ws; // websocket实例
  // let lockReconnect = false; // 连接锁，避免重复连接
  // let timeoutSet = null; // 延时器
  // let reconectNum = 0; // 重连次数
  // const timeout = 3000; // 超时重连间隔
  // let ws = new WebSocket(urlEnv.baseUrl.wsUrl + url);
  // console.log(ws)
  // ws.debug = false;
  // ws.automaticOpen = false;
  // ws.maxReconnectAttempts = 3;
  // socket连接成功后回调
  // this.onopen = () => {
  //   return new Promise(reslove => {
  //     ws.onopen = () => {
  //       console.log("socket已连接")
  //       reslove();
  //     };
  //   });
  // };
  // // 发送信息
  // this.send = data => {
  //   if (ws.readyState === 1) ws.send(JSON.stringify(data));
  // };
  // // 关闭socket
  // this.close = () => {
  //   ws.close();
  // };
  // // 接收消息回调
  // this.onmessage = () => {
  //   return new Promise(reslove => {
  //     ws.onmessage = data => {
  //       reslove(JSON.parse(data.data));
  //     };
  //   });
  // };
  // // 关闭回调
  // this.onclose = () => {
  //   return new Promise(reslove => {
  //     ws.onclose = data => {
  //       console.log("socket关闭");
  //       reslove(data);
  //     };
  //   });
  // };
  // // 错误回调
  // this.onerror = () => {
  //   return new Promise(reslove => {
  //     ws.onerror = data => {
  //       console.log("socket错误");
  //       reslove(data);
  //     };
  //   });
  // };

  // const resetOption = () => {
  //   lockReconnect = false
  //   reconectNum = 0 // 重置重连次数
  //   clearTimeout(timeoutSet) // 清除重连延时器
  // }

  // // 重连
  // const reconnect = () => {
  //   if (lockReconnect) return
  //   console.log("ws准备重连")
  //   lockReconnect = true
  //   // 重连最大次数3次
  //   if(reconectNum < 3){
  //     timeoutSet = setTimeout(()=>{
  //       console.log(`ws正在重连，第${reconectNum}次`)
  //       // createWebSocket()
  //       reconectNum++
  //       lockReconnect = false
  //     },3000) // 延迟3秒重连
  //   }
  // }

  // 创建连接
  // const createWebSocket = () => {
  ws = new WebSocket(urlEnv.baseUrl.wsUrl + url);
  // console.log("createWebSocket", ws);
  // const onopen = () => {
  //   return new Promise(reslove => {
  //     ws.onopen = () => {
  //       console.log("socket已连接");
  //       // resetOption()
  //       reslove();
  //     };
  //   });
  // };
  // // 发送信息
  // const send = data => {
  //   if (ws.readyState === 1) ws.send(JSON.stringify(data));
  // };
  // // 关闭socket
  // const close = () => {
  //   ws.close();
  // };
  // // 接收消息回调
  // const onmessage = () => {
  //   return new Promise(reslove => {
  //     ws.onmessage = data => {
  //       console.log(data)
  //       reslove(JSON.parse(data.data));
  //     };
  //   });
  // };
  // // 关闭回调
  // const onclose = () => {
  //   return new Promise(reslove => {
  //     ws.onclose = data => {
  //       console.log("socket关闭", data);
  //       // if (data.code === 4001 || data.code === 1000) {
  //       //   resetOption()
  //       // }else{
  //       // reconnect()
  //       // }
  //       reslove(data);
  //     };
  //   });
  // };
  // // 错误回调
  // const onerror = () => {
  //   return new Promise(reslove => {
  //     ws.onerror = data => {
  //       console.log("socket错误");
  //       // reconnect()
  //       reslove(data);
  //     };
  //   });
  // };
  return ws;
  //   onopen,
  //   send,
  //   onmessage,
  //   close,
  //   onclose,
  //   onerror
  // };
  // };

  // let w = createWebSocket();
  // this.onopen = w.onopen;
  // this.send = w.send;
  // this.onmessage = w.onmessage;
  // this.close = w.close;
  // this.onclose = w.onclose;
  // this.onerror = w.onerror;
  // this.ws = w.ws;
}

export default initSocket;
